package com.turing.post.organization.util;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;
import com.turing.post.util.PCPSWebInput;

/**
 * 商户手续费收入结算策略浮动数据访问接口
 * 
 * @author zxp
 * @Jan 3, 2013
 */
@Remote
@Local
public interface MerchantFeeSettlePolicyFloatDao {

	/**
	 * 根据主键查询商户手续费收入结算策略浮动
	 * 
	 * @param feePolicyId
	 *            费率id
	 * @return MerchantFeeSettlePolicyFloat 商户手续费收入结算策略浮动
	 */
	public MerchantFeeSettlePolicyFloat getMerchantFeeSettlePolicyFloatByFeePolicyId(
			BigInteger feePolicyId);

	/**
	 * 根据登录用户归属编号查询所在发卡商下商户手续费收入结算策略浮动列表
	 * 
	 * @param webInput
	 *            日志记录对象
	 * @param page
	 *            页码
	 * @return 商户手续费收入结算策略浮动列表
	 */
	public List<MerchantFeeSettlePolicyFloat> getMerchantFeeSettlePolicyFloatList(
			PCPSWebInput webInput, Integer page);

	/**
	 * 记录数
	 * 
	 * @param webInput
	 *            日志记录对象
	 * @return 商户手续费收入结算策略浮动记录数
	 */
	public BigInteger getMerchantFeeSettlePolicyFloatTotal(PCPSWebInput webInput);

	/**
	 * 新增商户手续费收入结算策略浮动
	 * 
	 * @param merchantFeeSettlePolicyFloat
	 *            商户手续费收入结算策略浮动
	 * @throws PCPSApplicationException
	 */
	public void insertMerchantFeeSettlePolicyFloat(
			MerchantFeeSettlePolicyFloat merchantFeeSettlePolicyFloat)
			throws PCPSApplicationException;

	/**
	 * 修改商户手续费收入结算策略浮动
	 * 
	 * @param merchantFeeSettlePolicyFloat
	 *            商户手续费收入结算策略浮动
	 * @throws PCPSApplicationException
	 */
	public void updateMerchantFeeSettlePolicyFloat(
			MerchantFeeSettlePolicyFloat merchantFeeSettlePolicyFloat)
			throws PCPSApplicationException;

	/**
	 * 删除商户手续费收入结算策略浮动
	 * 
	 * @param feePolicyId
	 *            费率id
	 * @throws PCPSApplicationException
	 */
	public void deleteMerchantFeeSettlePolicyFloatByFeePolicyId(
			BigInteger feePolicyId) throws PCPSApplicationException;
}
